//package cn.xorange.commons.utils.configuration;
//
//import com.alibaba.fastjson2.JSONReader;
//import com.alibaba.fastjson2.JSONWriter;
//import com.alibaba.fastjson2.support.config.FastJsonConfig;
//import com.alibaba.fastjson2.support.spring.http.converter.FastJsonHttpMessageConverter;
//import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
//import org.springframework.context.annotation.Bean;
//import org.springframework.http.MediaType;
//import org.springframework.http.converter.HttpMessageConverter;
//
//import java.nio.charset.StandardCharsets;
//import java.util.ArrayList;
//import java.util.List;
//
////@Configuration
//public class MyFastJsonConfig {
//    @Bean
//    public HttpMessageConverters fastJsonHttpMessageConverters(){
//        //1.定义一个converters转换消息的对象
//        FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
//        //2.添加fastjson的配置信息，比如: 是否需要格式化返回的json数据
//        fastJsonHttpMessageConverter.setFastJsonConfig(this.fastJsonConfig());
//        //3.添加mediaType类型支持
//        fastJsonHttpMessageConverter.setSupportedMediaTypes(this.supportedMediaTypes());
//        //4.将converter赋值给HttpMessageConverter
//        HttpMessageConverter<?> converter =fastJsonHttpMessageConverter;
//        //5.返回HttpMessageConverters对象
//        return new HttpMessageConverters(converter);
//    }
//
//    @Bean
//    private FastJsonConfig fastJsonConfig(){
//        //1.自定义配置
//        FastJsonConfig config = new FastJsonConfig();
//        config.setDateFormat("yyyy-MM-dd HH:mm:ss");
//        config.setCharset(StandardCharsets.UTF_8);
//        //2.1配置序列化的行为
//        //JSONWriter.Feature.PrettyFormat:格式化输出
//        config.setWriterFeatures(JSONWriter.Feature.PrettyFormat);
//        //2.2配置反序列化的行为
//        config.setReaderFeatures(JSONReader.Feature.FieldBased, JSONReader.Feature.SupportArrayToBean);
//        return config;
//    }
//
//    /**
//     * 支持的mediaType类型
//     * **/
//    private List<MediaType> supportedMediaTypes(){
//        ArrayList<MediaType> mediaTypes = new ArrayList<>();
//        //处理中文乱码问题
//        mediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
//        mediaTypes.add(MediaType.APPLICATION_JSON);
//        mediaTypes.add(MediaType.APPLICATION_ATOM_XML);
//        mediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
//        mediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
//        mediaTypes.add(MediaType.APPLICATION_PDF);
//        mediaTypes.add(MediaType.APPLICATION_RSS_XML);
//        mediaTypes.add(MediaType.APPLICATION_XHTML_XML);
//        mediaTypes.add(MediaType.APPLICATION_XML);
//        mediaTypes.add(MediaType.IMAGE_GIF);
//        mediaTypes.add(MediaType.IMAGE_JPEG);
//        mediaTypes.add(MediaType.IMAGE_PNG);
//        mediaTypes.add(MediaType.TEXT_EVENT_STREAM);
//        mediaTypes.add(MediaType.TEXT_HTML);
//        mediaTypes.add(MediaType.TEXT_MARKDOWN);
//        mediaTypes.add(MediaType.TEXT_PLAIN);
//        mediaTypes.add(MediaType.TEXT_XML);
//        return mediaTypes;
//    }
//}
